﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace Modelo.Sistema
{
    public class CatalogoUnidad
    {
        private static CatalogoUnidad _Instancia;
        public static CatalogoUnidad ObtenerInstancia()
        {
            if (_Instancia == null)
            {
                _Instancia = new CatalogoUnidad();
            }
            return _Instancia;
        }
        
        private List<Entidades.Sistema.Unidad> Col_unidad;

        private CatalogoUnidad()
        {
            Col_unidad = Mapping.Sistema.MappingUnidad.ConsultarUnidad();
        }


        public ReadOnlyCollection<Entidades.Sistema.Unidad> ListarUnidad()
        {
            return Col_unidad.AsReadOnly();
        }

        public ReadOnlyCollection<Entidades.Sistema.Unidad> ListarUnidadTT()
        {
            return Col_unidad.AsReadOnly();
        }



        public bool AgregarUnidad(Entidades.Sistema.Unidad oUnidad)
        {
            Col_unidad.Add(oUnidad);
            return Mapping.Sistema.MappingUnidad.AgregarUnidad(oUnidad);
        }

        public bool EliminarUnidad(Entidades.Sistema.Unidad oUnidad)
        {
            Col_unidad.Remove(oUnidad);
            return Mapping.Sistema.MappingUnidad.EliminarUnidad(oUnidad);
        }
        public void ModificarUnidad(Entidades.Sistema.Unidad oUnidad)
        {
            Mapping.Sistema.MappingUnidad.ModificarUnidad(oUnidad);
            Col_unidad.Remove(oUnidad);
            Col_unidad.Add(oUnidad);
        }

        public bool ValidarExistencia(Entidades.Sistema.Unidad oUnidad)
        {
            if (this.Col_unidad.Count(omatpri => omatpri.cod_unidad == oUnidad.cod_unidad) == 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        
    }
}
